package com.homework.template;

/**
 * @Author : Zan
 * @Create : 2024/6/4 20:10
 * @ClassName : JavaCodeSandBoxTemplate
 * @Description : 抽象模板类
 */
public abstract class JavaCodeSandBoxTemplate implements CodeSandBox {

    @Override
    public void executeCode() {
        //（1）把用户的代码保存为文件
        saveCodeToFile();

        //（2）编译代码，得到 .class 文件（编译）
        compileFile();

        //（3）执行程序，得到输出结果（运行）
        runFile();

        //（4）整理数据输出
        getOutputResponse();

        //（5）文件清理
        deleteFile();
    }

    /**
     * （1）把用户的代码保存为文件
     */
    public void saveCodeToFile() {
        System.out.println("（1）把用户的代码保存为文件");
    }

    /**
     * （2）编译代码，得到 .class 文件（编译）
     */
    public void compileFile() {
        System.out.println("（2）编译代码，得到 .class 文件（编译）");
    }

    /**
     * （3）执行程序，得到输出结果（运行）
     */
    public void runFile() {
        System.out.println("（3）执行程序，得到输出结果（运行）");
    }

    /**
     * （4）整理数据输出
     */
    public void getOutputResponse() {
        System.out.println("（4）整理数据输出");
    }

    /**
     * （5）文件清理
     */
    public void deleteFile() {
        System.out.println("（5）文件清理");
    }

    /**
     * （6）获取错误响应
     */
    public void getErrorResponse() {
        System.out.println("（6）获取错误响应");
    }
}
